home *** CD-ROM | disk | FTP | other *** search
- ************************************************
- * Welcome to the Scorpion Field Test *
- ************************************************
-
- -----------------
- TABLE OF CONTENTS
- -----------------
-
- 1. Installation
-
- Installing this field test on your hard disk
- Configuring this field test with Polaris or Vulcan
- Configuring Earlier Language products and this field test
- Changes to SYSTEM.INI file
- Configuring the Windows NT command prompt
-
- 2. Features
-
- 3. Important Information
-
- Stepping into Delphi's Dynamic Methods
- The Turbo Debugger User's Guides
- WREMOTE and Delphi Exception handling
- Video Conflicts
- Memory Requirements
- Object file format
- Make
- Out of Memory and MAKESWAP
- Creating 16-bit import libraries from .DEF files
- Make under Windows NT
- New Tools
- Turbo Debugger for Windows
-
- 4. Enhanced MASM Compatibility
-
- 5. Known problems
-
- ---------------
- 1. INSTALLATION
- ---------------
-
-
- Installing this field test on your hard disk:
- -----------------------------------------------------
- 1. Put the install disk in a 3.5" floppy drive.
- 2. Change to that drive and type
-
- INSTALL <enter>
-
- 3. Fill in directories as appropriate, and INSTALL will create
- appropriate Windows groups, and add the appropriate files to
- the directories you selected.
-
- Notes on using Scorpion with previous versions of Borland Tools
- ---------------------------------------------------------------
-
- This product is designed to be used as a standalone product or in
- conjunction with Polaris or Vulcan. It can also be used with
- Borland/Turbo C++ 4.x, Borland Pascal 7 or Delphi 1.0. If you are using
- Scorpion in conjunction with any of these shipping compiler products, they
- should be installed such that shared components are drawn from Scorpion.
- (i.e.: \tasm5\bin comes before \bc45\bin in your path.)
-
- If you already have Vulcan, Polaris, Delphi, Borland C++ 4.x, or Turbo C++
- 4.5 on your hard disk, then it is also safe to install Scorpion into the
- existing product directory.
-
- If you are installing Delphi, or Borland C++ 4.x AFTER this field test has
- been installed, you will have to manually change the system
- settings that allow these products to coexist:
-
- In your system.ini file, check your [386Enh] section for multiple entries
- for the device TDDEBUG.386. Remove duplicate entries of TDDEBUG.386 so
- that only the version from this product is loaded. On disk, you may also
- want to rename or remove the BP7 or BC4.x versions of TDDEBUG.386 and
- TDWINTH.DLL to avoid their accidental loading. You must restart Windows
- after making changes to system.ini.
-
-
- Different versions of TDW may not be run simultaneously.
-
- Make sure that old copies of TDW.INI are removed from your system.
- (Running the utility TDWINI.EXE will make sure that this takes place.)
-
- Changes to SYSTEM.INI file
- --------------------------
- The install program makes these changes to the SYSTEM.INI file:
-
- 1) Adds "device=c:\tasm\bin\windpmi.386" to support our 32-bit tools.
- 2) Adds "device=c:\tasm\bin\tddebug.386" to support our debugger.
-
-
- Configuring the Windows NT command prompt
- -----------------------------------------
- To run 16-bit protected-mode programs (tlink) under an NT command prompt
- you need to add the following line to CONFIG.NT:
-
- ntcmdprompt
-
- Under the default NT command-line prompt, DOS COMMAND.COM is run after
- returning from a TSR (such as RTM.EXE which bcc and tlink load). Adding the
- above line will cause the original NT CMD.EXE to be run.
-
- -----------
- 2. FEATURES
- -----------
-
- - Enhanced MASM compatibility (see item #4)
- - Dual monitor support under Win95 (tdw -do, td32 -vd)
- - Support for new language constructs (bool, namespaces, etc.)
- - Thunk Compiler compatibility
-
-
- ------------------------
- 3. IMPORTANT INFORMATION
- ------------------------
-
-
- Stepping into Delphi's Dynamic Methods
- --------------------------------------
-
- By default, single-stepping through a program skips over
- dynamic methods and does not step into them. That's
- because TDW normally determines all the single-step stop
- points when the program is first loaded, at which time
- dynamic methods are not yet defined.
-
- By following these steps, however, you can change the way
- TDW determines stop points and make it possible to step
- into dynamic methods.
-
- 1) Choose View|Execution History.
-
- 2) Invoke the Execution History SpeedMenu, either by
- clicking the right mouse button or by pressing Alt+F10.
-
- 3) Toggle the "Full history" option from No to Yes.
-
- Now you can step into dynamic methods.
-
-
- WREMOTE and Delphi Exception handling
- -------------------------------------
- Exception handling in a Delphi application is not visible
- from WREMOTE. To debug exception handling code, use TDW
- locally.
-
- Video Conflicts
- ---------------
- There are known conflicts between TDW's SVGA video DLL and
- some video drivers. To solve the problem, reconfigure TDW
- to use TDWGUI.DLL or Windows to use a standard VGA or SVGA
- driver.
-
-
-
- Object File Format
- ------------------
- This product is designed to use and generate only object files which adhere
- to the Intel OMF (Object Module Format) specification. This means that TLINK32
- and TLIB only accept files of this format, and all provided libraries use
- this format. There is no support in the linker or librarian for COFF object
- modules produced by Microsoft C tools.
-
-
- Out of Memory and MAKESWAP
- --------------------------
-
- If you get "Out of Memory" errors from DOS when running the command-line
- tools, create a swap file with the MAKESWAP utility. (Note that this
- applies to DOS only, not to DOS boxes opened under Windows.) MAKESWAP
- takes the size of the file to create in KBytes, for example:
-
- MAKESWAP 12000
-
- will create a 12MB swap file in the current directory called EDPMI.SWP
- for use by Borland command line tools. To enable the swap file, use
- the DPMI32 environment variable by issuing the following command at
- the DOS prompt:
-
- set DPMI32=SWAPFILE <location of swap file>\EDPMI.SWP
-
-
- Make under Windows NT
- ---------------------
- If you encounter difficulties running MAKE under Windows
- NT, try running MAKER instead.
-
-
- Creating 16-bit import libraries from .DEF files
- ------------------------------------------------
- Use the /o implib switch when creating 16-bit import libraries from .DEF files
- to prevent implib from generating extensions for import entry module names.
-
-
- ------------------------------
- 4. Enhanced MASM Compatibility
- ------------------------------
-
- Code that was already running under TASM, even with -umxxx or QUIRKS
- should still run. TASM merely accepts the MASM way or option to specify
- something and then pays little actual attention to it -- a la QUIRKS.
-
-
- You can now use the following MASM features which are equivalent to IDEAL
- mode features:
-
- MASM IDEAL
- ---- -----
- STRUCT STRUC
- EXTERN EXTRN
- BYTE DB
- WORD DW
- DWORD DD
- TBYTE DT
- QWORD DQ
- EXTERNDEF GLOBAL
- PROTO PROCDESC
-
-
- Conditionals
- ------------
-
- You can write C-like conditional and control statements that produce code.
- Thus you may have such code as:
-
- .while (ax > 3) && bx == 4
- ...
- ...
- .endw
-
- C-style conditional operators ( =, !=, >=, etc_) are all accepted, and the
- directives that work are:
-
- .while
- .repeat
- .if
- .else
- .endif
- .endw
- .until
- .untilcxz
- .break
- .break.if
- .continue
- .continue.if
-
- Some special symbols for machine flags are introduced also and may be used
- in the conditional statements. They are:
-
- carry? overflow? parity? sign? and zero?
-
- Note that he code that is generated is "sign"- sensitive. MASM
- has introduced not only BYTE and WORD as definitional directives, but has
- also added SBYTE, SWORD, SDWORD (and REAL4, REAL8, and REAL10).
-
- In general, AX and other registers are considered as unsigned, so to make
- a comparison like AX >= 0 meaningful, you must write something like .WHILE
- SWORD PTR AX >= 0 .ENDW
-
- which will generate
- cmp ax,0
- jl past the endw line
-
- Simply writing
- .WHILE AX >= 0
- will generate
- cmp ax,0
- jb ....
-
- which simply will not work because that comparison will not generate a
- carry bit. So be careful when using these .conditionals.
-
-
- Macros
- ------
-
- TEXTEQU is introduced as a new way to handle text macros.
-
- Macro commands FOR, FORC, and REPEAT are introduced. They work just
- like IRP, IRPC, and REPT.
-
- Several directives for listing files are added:
-
- .LISTALL, .LISTIF, .LISTMACRO, .LISTMACROALL, .NOLIST,
- .NOLISTIF, .NOLISTMACRO, SUBTITLE
-
- However, they introduce no functionality beyond commands that already
- exist in TASM.
-
-
- Subroutines and Calls
- ---------------------
-
- PROC declarations have been extended and a PROTO directive has been added
- that allow one to declare subroutines in a C- (if not C++) like fashion.
- It includes stipulating calling-sequence language type, parameter-types
- for stuff on the stack, and even visibility (PUBLIC, PRIVATE, etc.).
-
- An INVOKE command has been added to generate code to call such a proc. It
- includes sign-extension, etc., according to the type of parameter in the
- proc prototype and the type of variable in the call.
-
-
- OPTIONS
- -------
-
- The specific options detailed below have been implemented. Any other
- OPTIONs will not be implemented and will be silently ignored. It is
- important to note that the assembler will not generate and error or
- warning for things that is has not implemented.
-
- The syntax is: OPTION KEYWORD any particulars depending on keyword
-
- Here is a list (and little more) of the options:
-
- OLDSTRUCTS NOOLDSTRUCTS
- ; MASM forbade some things and allowed others
-
- M510 NOM510
- ; be compatible with the popular masm 5.1
- implies OLDSTRUCTS, OLDMACROS, EXPR16,
- SETIF2:TRUE, DOTNAME, etc.
-
- EXPR16 EXPR32
- ; default # bits when calculating
-
- LJMP NOLJMP
- ; automatically adjust conditional jumps
-
- PROC: PUBLIC or PRIVATE or EXPORT
- ; default mode that procs have at link time
-
- PROLOGUE EPILOGUE
- ; into macros for PROC entry & exit
-
- NOKEYWORD
- ; proviso for using old code that has
- now-illegal symbols (such as OLD or EXTERN)
-
- OLDMACROS NOOLDMACROS
- ; mostly a matter of punctuation change
-
- DOTNAME NODOTNAME
- ; allow symbols to start with a dot
-
- OFFSET: GROUP or SEGMENT or FLAT
- ; how to treat the OFFSET operator
- SCOPED NOSCOPED
- ; whether to allow 2 subroutines to have
- identical internal tags
- SETIF2: TRUE or FALSE
- ; how & whether to handle error conditionals like
- .ERR2
- NOSIGNEXTEND
- ; code generation for some boolean operations
-
- SEGMENT: USE16 or USE32 or FLAT
- ; the default segment type
-
- CASEMAP: None or NOTPUBLIC or ALL
- ; control linking as to upper-lower case externals
- and publics. Similar to & interacts with /MX,
- /ML command line ops
-
- EMULATOR NOEMULATOR
- ; how to generate floating point code
-
- READONLY NOREADONLY
- ; to keep code from knowingly being able to clobber
- itself
-
- LANGUAGE: C or PASCAL or FORTRAN or BASIC or SYSCALL or STDCALL
- ; mainly affects treatment of entry & exit of PROCS
-
-
-
-
- ------------------------
- 5. Known Problems
- ------------------------
-
- File | Attach does not work in TD32.
-
- Inspecting methods in Delphi objects may lead to a crash.
-
- TD32 cannot debug Win32 apps under Win32s.
-
- Remote network debugging is not currently supported.
-
-
-
-
-
-
-